/**
 * This file is part of Idegen, the application to create IDE project files.
 *
 * @copyright Copyright (c) 2011-2012, Walter Tamboer http://waltertamboer.nl
 * @file Idegen/IO/File.hpp
 */

#ifndef IDEGEN_IO_FILE_HPP
#define IDEGEN_IO_FILE_HPP

namespace Idegen
{
	/** A physical file on the system. */
	class File
	{
	public:
		/** Initializes a new instance of this class. */
		File();
		
		/**
		 * Initializes a new instance of this class.
		 *
		 * @param[in] path The path to this file.
		 */
		File( const std::string& path );

		/** Cleans up all the resources used by this class. */
		virtual ~File();

		/**
		 * Gets the path of this file.
		 *
		 * @return Returns a string containing the path.
		 */
		std::string GetPath() const;

		/**
		 * Checks if this file has the given extension
		 *
		 * @param[in] extension The extension to check.
		 * @return Returns true if the file has the given extension; false otherwise.
		 */
		bool HasExtension( const std::string& extension ) const;

	private:
		/** The path to this file. */
		 std::string m_Path;
	};
}

#endif

